//
//  spriteDescription.h
//  cliptest
//
//  Created by James Tong on 31/05/2010.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Texture2D.h"
#import "LDSprite.h"

enum {
	UNKNOWN, BEGIN, END, OTHER, COMMENT
};

@interface LDSpriteLayer : NSObject {
	FILE	*fp;
	char	buf[512];
	
	NSMutableArray *spriteArray;
	
	LDSprite *sprite01;
	
	int			textureIndex;
	char		key[16];			// 索引用，請自行處理是獨一無二的
	GLfloat		tileWidth;
	GLfloat		tileHeight;
	int			tileInterval;		// 每相隔多少frame自動變換tile
	int			tileTimer;			// 儲存現在經過之多少frame
	int			startTile;			// 動畫由那一個tile開始
	int			endTile;			// 動畫由那一個tile結朿
	int			nowTile;			// 動畫現在進行到那一個tile
	BOOL		tileRepeat;			// 動畫會不斷重覆
	int			movesInterval;
	int			movesTimer;
	int			startX;				// 動畫開始畫的X軸
	int			startY;				// 動畫開始畫的Y軸
	int			endX;				// 動畫終點的X軸
	int			endY;				// 動畫終點的Y軸
	BOOL		extendXY;			// 自動計算將完結地點延伸至screen外
	int			nowX;
	int			nowY;
	int			movesIncX;			// 每次移動的距離
	int			movesIncY;			// 每次移動的距離
	BOOL		movesRepeat;		// 移動會不斷重覆
	BOOL		drawMe;				// 會不會render到畫面
}

- (id) init;
- (void) loadSpriteWithDescriptionFile : (NSString *)fname : (NSMutableArray *)textureArray;
- (int) parseDescription : (char *) s;
- (id) spriteAtIndex : (int) n;
- (id) spriteUseKey : (char *) skey;
- (void) animate;
- (void) addSprite : (LDSprite *)s;
- (void) removeSpriteAtIndex : (int) n;
- (void) removeSprite : (id) s;
- (int) count;
@end
